GPUs perform a variety of operations consisting of programmable and fixed-function stages. In modern GPUs the programmable operations are performed in shared, flexible programmable engines (PEs) capable of running a variety of shaders (e.g., programs) for different operations. The shaders are programmed by an outside application utilizing the GPU. For example, some shaders work on primitives/vertices (triangles, lines, points, etc.) and others for working on pixels (or sub-pixel samples, etc.) and still others for working on compute applications (such as physics problems as part of a real-time game engine.)
Shader (programs) are compiled from a high-level programming language (e.g., similar to C) into an Instruction Set Architecture (ISA) targeted to operate on PEs. The ability to use a high-level programming language is facilitated through the use of a variety of application program interfaces (APIs). Thus, the application programmer is able to utilize a high-level programming abstraction in which to describe the desired functionality. However, the compilation is performed without full knowledge of the pipeline configuration in which the compiled code will later be run. Since the compilation is run prior to binding the compiled code to a particular configuration, it is termed bindless.
Bindless code is not optimized for a GPU's pipeline configuration. In many cases, a mechanism is needed to perform format conversions and layout rearrangements necessary for the program and hardware configuration to work together (e.g., the code needs to be bound). For example, in some cases, some systems may perform incremental recompiles or link stages to properly bind the object code for use in a GPU's specific pipeline. In many cases, past technologies for performing this binding have been slow and/or hardware intensive. Thus, a new method of binding code based on the pipeline configuration is needed to improve overall rendering performance.
The above information is only for enhancement of understanding of the background of embodiments of the present disclosure, and therefore may contain information that does not form the prior art.